[新機能]Googleスプレッドシートからdbt Semantic Layerへ接続時にSaved queriesで定義した内容を実行できるようになりました
さがらです。
dbt Cloudの2024年4月のリリースノートに以下の言及があり、Googleスプレッドシートからdbt Semantic Layerへ接続時にSaved queriesとして定義した内容を参照して実行できるようになりました。
Enhancement: In the Google Sheets application, we added support to allow jumping off from or exploring MetricFlow-defined saved queries directly.
こちらのアップデートの内容を試してみたので、本記事でまとめてみます。
Saved queriesとは
まず、Saved queriesとはどういった機能なのか説明します。
Saved queriesは、使用するMetrics・Dimensionとフィルタ関係をYAMLで定義しておくことで、定義した条件に沿って実行されるクエリ結果を指定したスキーマにテーブルとしてエクスポートできる機能です。
下図がSaved queriesの定義例となります。
saved_queries:
- name: test_saved_query
description: "{{ doc('saved_query_description') }}"
label: Test saved query
query_params:
metrics:
- simple_metric
group_by:
- "Dimension('user__ds')"
where:
- "{{ Dimension('user__ds', 'DAY') }} <= now()"
- "{{ Dimension('user__ds', 'DAY') }} >= '2023-01-01'"
exports:
- name: my_export
config:
alias: my_export_alias
export_as: table
schema: my_export_schema_name
Saved queriesの公式ドキュメントは下記です。
事前準備:Googleスプレッドシートからdbt Semantic Layerへ接続
Googleスプレッドシートからdbt Semantic Layerへ接続する方法については、別途下記の記事で詳細をまとめておりますので、こちらも参考にしてみてください。
また、使用しているリポジトリは下記のjaffle-shop
リポジトリをクローンしたものとなっています。
試してみた
前提条件
下図のような形で3つのsaved_queries
を定義しているとします。
動作確認
スプレッドシートからdbt Semantic Layerの拡張機能を開き、右上のメニューバーからSaved Queries
を押します。
すると、定義しているsaved_queries
一覧が表示されます。横の下向き三角のアイコンを押すと、どのMetricsを実行するのかなど設定条件が表示されます。
実際に定義したSaved queriesを実行するには、対象のSaved queriesの横の「▶」ボタンを押せばOKです。
あとはオプションですが、右横の点々をクリックしてBuild Selection
を押すと、定義済みのSaved queriesに対して設定を変更してデータを出力させることが可能です。
最後に
Googleスプレッドシートからdbt Semantic Layerへ接続時にSaved queriesとして定義した内容を参照して実行できるようになりましたので、実際に試してみました。
Saved queriesはテーブルとしても出力できますが、実際にエンドユーザーが参照する際はスプレッドシートなどのほうが都合が良いこともあると思います。そんなときにこの機能が使えそうですね!